2004年,Altera 正式推出了Nios II系列32位RISC
嵌入式处理器。Nios II系列
软核处理器是
Altera的第二代
FPGA嵌入式处理器,其性能超过200DMIPS,在Altera FPGA中实现仅需35美分。Altera的Stratix 、Stratix GX、 Stratix II和 Cyclone系列FPGA全面支持Nios II处理器,以后推出的FPGA器件也将支持Nios II。
自Altera
于2000年推出第一代16位Nios处理器以来,已经交付了13000多套Nios开发套件,Nios成为最流行的软核处理器。于2004年6月推出的Nios Ⅱ系列采用全新的架构,比第一代Nios具有更高水平的效率和性能。和第一代相比,Nios Ⅱ核平均占用不到50%的FPGA资源,而计算性能增长了1倍。
Nios Ⅱ分类
Nios Ⅱ系列
包括3种产品,分别是:Nios Ⅱ/f(快速)——最高的系统性能,中等FPGA使用量;Nios Ⅱ/s(标准)——高性能,低FPGA使用量;Nios Ⅱ/e(经济)——低性能,最低的FPGA使用量。这3种产品具有
32位处理器的基本结构单元——32位指令大小,32位数据和地址路径,32位
通用寄存器和32个外部中断源;使用同样的
指令集架构(ISA),100%
二进制代码兼容,设计者可以根据系统需求的变化更改CPU,选择满足性能和成本的最佳方案,而不会影响已有的软件投入。
特别是,Nios Ⅱ系列支持使用专用指令。专用指令是用户增加的硬件模块,它增加了
算术逻辑单元(ALU)。用户能为系统中使用的每个Nios Ⅱ处理器创建多达256个专用指令,这使得设计者能够细致地调整系统硬件以满足性能目标。专用指令逻辑和本身Nios Ⅱ指令相同,能够从多达两个源寄存器取值,可选择将结果写回目标寄存器。同时,Nios Ⅱ系列支持60多个外设选项,开发者能够选择合适的外设,获得最合适的处理器、外设和接口组合,而不必支付根本不使用的硅片功能。
Nios Ⅱ系列
能够满足任何应用32位
嵌入式微处理器的需要,客户可以将第一代Nios处理器设计移植到某种Nios Ⅱ处理器上,Altera将长期支持现有FPGA系列上的第一代Nios处理器。另外,Altera提供了一键式移植选项,可以升级至Nios Ⅱ系列。Nios Ⅱ处理器也能够在HardCopy器件中实现,Altera还为基于Nios Ⅱ处理器的系统提供ASIC的移植方式。
Nios Ⅱ处理器具有完善的软件开发套件,包括
编译器、
集成开发环境(IDE)、JTAG调试器、
实时操作系统(RTOS)和
TCP/IP协议栈。设计者能够用Altera Quartus Ⅱ开发软件中的SOPC Builder系统开发工具很容易地创建专用的处理器系统,并能够根据系统的需求添加Nios Ⅱ处理器核的数量。
使用Nios Ⅱ
软件开发工具能够为Nios Ⅱ系统构建软件,即一键式自动生成适用于系统硬件的专用C/C++运行环境。Nios Ⅱ集成开发环境(IDE)提供了许多软件模板,简化了项目设置。此外,Nios Ⅱ开发套件包括两个第三方
实时操作系统(RTOS)——MicroC/OS-Ⅱ(Micrium),Nucleus Plus(ATI/Mentor)以及供网络应用使用的TCP/IP协议栈。
长期以来,Altera一直推行
嵌入式处理器战略的原因是,随着应用的ASIC开发日益受到成本的困扰,OEM日渐转向FPGA来构建自己的系统。这些系统中绝大多数需要一个处理器,而Altera正是为设计者提供了为FPGA优化的灵活的嵌入式处理器方案,可以满足16位和32位嵌入式处理器市场的需求。估计到2007年,该市场价值将到达110亿美元。
在FPGA中使用
软核处理器比硬核的优势在于,硬核实现没有灵活性,通常无法使用最新的技术。随着系统日益先进,基于标准处理器的方案会被淘汰,而基于Nios Ⅱ处理器的方案是基于HDL源码构建的,能够修改以满足新的系统需求,避免了被淘汰的命运。将处理器实现为HDL的IP核,开发者能够完全定制CPU和外设,获得恰好满足需求的处理器。
嵌入式处理器特性
嵌入式处理器Nios Ⅱ系列为Altera FPGA和
可编程片上系统(软核嵌入式处理器系列的特性,更多通用信息请参阅Nios Ⅱ简介页面。
表1. Nios Ⅱ嵌入处理器系列特性
特性 说明
设计流程及工具
硬件开发工具 本页面详列了搭建Nios Ⅱ处理器硬件系统所用到的开发工具。
软件开发工具 本页面提供了Nios Ⅱ集成开发环境(IDE)的相关信息,这是一种开发人员广泛应用的,包含编辑、编译和调试应用软件等功能的集成开发环境。
开发套件 Altera及其合作伙伴提供了大量应用了NiosⅡ系列
嵌入式处理器的开发板套件。
系统级设计流程 Altera的SOPC Builder工具提供了快速搭建SOPC系统的能力,这种架构可以是包含一个或几个CPU,提供
存储器接口,外围设备和系统互连逻辑的复杂系统。
构架及特性
Nios Ⅱ处理器核 Nios Ⅱ处理器系列由三个不同的内核组成,可以灵活地控制成本和性能,从而拥有广泛的应用空间。
JTAG调试模块 JTAG调试模块提供了通过远端PC主机实现Nios Ⅱ处理器的在芯片控制、调试和通讯功能,这是Nios Ⅱ处理器的一个极具竞争力的特性。
用户指令 开发人员可以在Nios Ⅱ CPU 核内增加硬件,用以执行复杂运算任务,为时序要求紧张的软件提供加速算法。
外围设备及接口 Nios Ⅱ开发套件包括一套标准外围设备库,在Altera的FPGA中可以免费使用。
Avalon™交换式总线 Avalon交换式总线在处理器、外围设备和接口电路之间实现网络连接,并提供高带宽数据路径、多路和实时处理能力。Avalon交换式总线可以通过调用SOPC Builder设计软件自动生成。
设计资源
Nios Ⅱ处理器支持 Nios Ⅱ处理器支持页面提供了对Nios Ⅱ 设计者有帮助的多种信息,其中包括使用许可、下载、参考设计、文档资料、在线展示及常见问题。
嵌入式处理器方案中心 嵌入式处理器方案中心提供了大量的信息以帮助开发人员应用Altera的嵌入式处理器实现系统设计。可获取的信息有器件支持、
软件开发工具,外围设备及接口、培训、技术支持和资料。
Nios续订信息 Nios Ⅱ开发套件包括一年期的CPU、外设和嵌入式软件开发工具的升级许可。(其中不包括Quartus Ⅱ软件的升级。)客户可以通过Nios续订程序每年订购包括Nios Ⅱ 处理器的升级等额外信息。
Nios Ⅱ
嵌入式处理器问与答页面 此页提供Altera Nios Ⅱ系列嵌入式处理器的常见问题及解答。
Stratix Ⅱ器件及Nios Ⅱ处理器系列 Stratix Ⅱ器件结构的优异特性和Nios Ⅱ嵌入式处理器系列相结合,提供了无与伦比的处理能力,满足网络、通信、数据信号处理(DSP)应用、海量存储及其他高带宽系统的应用需求。
处理器系列
Stratix FPGA结构的优异特性和Nios Ⅱ嵌入式处理器相结合,提供了很高的处理能力,满足高带宽系统应用需求。
Cyclone™器件及Nios Ⅱ处理器系列 在Cyclone器件中应用Nios Ⅱ
嵌入式处理器系列,降低了成本,提高了灵活性,在价格敏感应用环境中给低成本分立式微处理器提供了一个理想的替代品。
核心器件: Nios Ⅱ
.clock (s1_clk),file://s1_clk为来自
Avalon总线模块上的S1端口的
时钟信号.aclr (s1_reset),file://s1_reset为来自
Avalon总线模块上的S1端口的复位信号
.q (s1_readdata),file://s1_readdata为流向Avalon总线模块的S1端口的32位数据
.address (s1_address) file://s1_address为来自于Avalon总线模块的S1端口的地址
);
file://控制寄存器读写端口(S2):
control_register the control_register
(
.clk (s2_clk),file://s2_clk为来自Avalon总线模块上的S2端口的
时钟信号.reset (s2_reset),file://s2_reset为来自Avalon总线模块上的S2端口的复位信号
.read (s2_read),file://s2_read为来自Avalon总线模块上的S2端口的读使能信号
.write (s2_write),file://s2_write为来自Avalon总线模块上的S2端口的写使能信号
.schipselect (s2_chipselect),file://s2_chipselect为来自Avalon总线模块上的S2端口的片选信号
.address (s2_address),file://s2_address为来自Avalon总线模块上的S2端口的地址
.readdata (s_readdata),file://s2_chipselect为流向Avalon总线模块上的S2端口的32位读数据
.writedata (s2_writedata) file://s2_writedata为来自Avalon总线模块上的S2端口的32位写数据
);
启动方案的软件设计
启动方案的软件设计目标是当系统复位后,在外部处理器向Nios Ⅱ
程序存储器和数据存储器传输数据的过程中,Nios Ⅱ处理器运行要受到外部处理器的控制。当一切就绪后,外部处理器发出一条释放Nios Ⅱ处理器的命令,接下来Nios Ⅱ处理器就可以正常运行了。
软件部分主要就是存放在启动延迟模块中ROM的代码,此代码主要是检测启动延迟模块中
控制寄存器2的第0位是否为1。若为1,则跳转到控制寄存器1中所存储的地址处执行。若设控制寄存器的基址为CONTROL_REG_BASE,为了减少代码量,这段代码容易用Nios Ⅱ的汇编指令来实现,代码部分在此从略。
最后本方案在我们自己设计的一块开发板上经过测试,能够正确完成Nios Ⅱ 处理器的启动。
结语
采用多处理器的系统虽然可以提高系统的性能,但传统的
多处理器系统一般只出现在
工作站及高端PC上,在
嵌入式系统中由于其设计代价太高很少采用。本文设计了一种在多处理器系统中的Nios Ⅱ软核处理器的启动方案,这个方案在外部处理器向Nios Ⅱ的程序存储器和数据存储器加载数据时,可以控制Nios Ⅱ处理器的启动。
在HardCopy Ⅱ
结构化ASIC中实现Nios Ⅱ处理器
Nios Ⅱ系列
嵌入式处理器具有三个处理器内核,可实现较大范围的嵌入式处理应用。这些软IP处理器内核可以工作在任何最新一代Altera FPGA以及HardCopy®系列
结构化ASIC上。设计人员可以选择使用高性能内核、低成本内核或者性价比合适的内核。Nios Ⅱ系列处理器可实现如下任务:
实现复杂的状态机
分担现有处理器载荷
执行I/O和数据处理任务
加速数字信号处理(DSP)算法
在HardCopy Ⅱ结构化ASIC中运行时,Nios Ⅱ
嵌入式处理器出众的处理能力满足了高性能
片上系统(SOC)的要求。Nios Ⅱ嵌入式处理器能够提供系统级处理器性能,实现处理器和系统功能以及逻辑在单个器件中的集成。HardCopy Ⅱ结构化ASIC和Nios Ⅱ嵌入式处理器结合使用能够满足计算、大容量存储、电信和网络应用的要求。
图1是单个HardCopy Ⅱ结构化ASIC中多个Nios Ⅱ处理器在数据处理和控制应用上的实例。
图1. HardCopy Ⅱ器件中Nios Ⅱ处理器进行数据处理
HardCopy器件设计流程使设计人员可以在一个FPGA中测试、验证其设计。然后将经过验证的设计递交给HardCopy设计中心,以没有风险的无缝移植方式在结构化ASIC中实现。HardCopy结构化ASIC是唯一能够实现在正式投产前,硬件功能在FPGA中验证以及系统软件在真实系统配置环境中进行设计、测试的器件。
由于设计在移交给Altera之前在FPGA中进行了测试,因此Altera从第一个原型开始就可以保证实现芯片的全部功能。
HardCopy Ⅱ结构化ASIC体系结构
HardCopy Ⅱ结构化ASIC基于Stratix Ⅱ系列FPGA,在HardCopy Ⅱ器件和Stratix Ⅱ FPGA之间有多个原型选择。这取决于所需的HardCopy器件、I/O引脚和封装要求。HardCopy Ⅱ器件具有高达350-MHz的性能,以Nios Ⅱ处理器内核实现迄今为止最高的性能表现,而只消耗原型Stratix Ⅱ器件的一半功率。
Stratix Ⅱ器件结构中的嵌入式DSP模块也可以应用在HardCopy Ⅱ器件中。这些DSP模块是对Nios Ⅱ用户指令集和其他
硬件加速单元的完美补充。DSP设计人员现在可以在高性能硬件DSP模块中生成DSP算法和复杂的数学程序,做为常用软件程序来访问或者做为Nios Ⅱ CPU的用户指令来运行。设计人员可以方便灵活的实现高级
软件设计,支持结构化ASIC中的并行硬件操作性能,而不需要进行额外的时钟加速。
HardCopy Ⅱ器件的存储器可满足典型SOC的所有存储要求。每个最大9 M-RAM模块可提供64-K字节段。最大的HardCopy Ⅱ器件含有576 K字节源码和数据存储。HardCopy Ⅱ结构化ASIC还支持高速存储器接口,可使用最新的DDR2 SDRAM进行外部源码和数据存储。
低成本许可方式
Nios Ⅱ系列
嵌入式处理器以一次付清的方式进行许可,不需要对每个器件或每个工程支付额外的版税。Nios Ⅱ许可允许在任何Altera器件中使用处理器内核,因此采用Nios Ⅱ处理器和HardCopy Ⅱ器件可为批量产品提供最具成本效益的解决方案。
Nios Ⅱ许可通常做为Nios Ⅱ开发包的一部分进行购买。现在可应用于Stratix、Stratix Ⅱ 和 Cyclone™ 器件系列,开发包含有Quartus Ⅱ FPGA设计软件和Nios Ⅱ
集成开发环境以及Nios Ⅱ全部许可。所有的开发包都包括一块开发板及所需的电缆、电源,用户在打开包装后的几分钟内就可以使用Nios Ⅱ处理器进行开发设计。
全面的SOPC解决方案
Altera的SOPC Builder自动系统开发工具为设计人员提供了强大的开发平台,可构成包括处理器、外设和
存储器接口等常用
系统组成的总线系统。
HardCopy Ⅱ设计流程得益于采用了在FPGA原型阶段,FPGA设计文件生成时的SOPC Builder模块设计方法。基于模块的设计方法有助于Nios Ⅱ处理器和其他IP模块同用户逻辑、用户指令和硬件加速器等典型高密度逻辑设计组成的集成。
Nios Ⅱ外设和接口库页面上有适用于Nios Ⅱ处理器的外设的更多详细信息
迅速构建最合适的处理器系统
嵌入式开发人员面临的主要挑战是如何选择一款最合适的处理器,既不会为了提高性能而超过预算,又不会牺牲功能特性。理想的嵌入式解决方案帮助您:
选择最适合您应用的CPU、外设和接口
现场远程更新,保持竞争,满足需求的变化。
不必改动电路板设计,提升性能——针对需要的功能进行加速。
避免处理器和ASSP过时的风险
将多种功能在一个芯片中实现,降低了总成本、复杂度和功耗。
通过最合适的CPU、外设和存储器接口,以及定制硬件加速器,达到每一新设计周期的独特目标,Nios Ⅱ 处理器以极大的灵活性满足了您的需求。
嵌入式软件工具
如果您正在进行Nios Ⅱ 处理器设计,Nios Ⅱ 嵌入式设计套件为您开发可靠的应用软件提供了所需的一切。采用基于Eclipse的Nios Ⅱ
集成开发环境 (
编译器,简单的右键单击,加速您的 ANSI C 应用程序。
世界上最流行的可配置处理器
Nios Ⅱ处理器在全世界已经发售了15,000多个开发套件,世界前20名OEM均采用了该处理器。Nios Ⅱ处理器是目前最流行的可配置软核处理器。Nios Ⅱ处理器具有很大的灵活性,得到了广泛应用,在特性、成本和性能上达到了最佳,是一款避免昂贵的产品过时、帮助您将产品尽快推向市场的处理器。